"""
数据处理层
"""

import os
import json
from conf import settings


# 查询数据
def select_data(username, data=True, is_user=True):

    if is_user:
        # 接收逻辑接口层传过来的username参数，并拼接成用户数据文件路径
        user_path = os.path.join(settings.USER_DATA_DIR, f"{username}.json")
    else:
        # 接收逻辑接口层传过来的username参数，并拼接成商品数据文件路径
        user_path = os.path.join(settings.GOODS_DATA_DIR, f"{username}.json")

    # 判断用户名是否已被注册
    if os.path.exists(user_path) and not data:  # 用户名已被注册，但不需要数据
        return True
    elif os.path.exists(user_path) and data:  # 用户名已被注册，需要数据
        with open(user_path, mode="rt", encoding="utf-8-sig") as f:
            user_data = json.load(f)
            return user_data
    return False


# 保存数据
def save_data(user_data):
    username = user_data.get("username")
    user_path = os.path.join(settings.USER_DATA_DIR, f"{username}.json")
    # 保存数据到文件
    with open(
        user_path, mode="wt", encoding="utf-8-sig"
    ) as f:  # utf-8-sig跟utf-8编码格式一样，但会在文件开头添加BOM标识符，避免在windows系统中打开时乱码
        json.dump(user_data, f, ensure_ascii=False)
